Computer systems have long used memory devices to store data. One reason for the widespread use of non-volatile memory in lieu of disk drives is speed. For example, access to data in non-volatile memory is typically much quicker than access to data stored in a disk (e.g., a physically rotating storage medium). A downside of using non-volatile memory as opposed to disk drive storage is cost. For example, the cost per bit to store data in memory can be considerably higher than the cost per bit to store data in a disk drive.
Computer systems typically include some sort of memory management function to keep track of and provide access to the data stored at different locations in the non-volatile memory system. Such a memory management task can be rather complex, especially since the size and need for larger memory systems has escalated over the years.
Memory systems typically include many storage elements to store bits of information. Any of the many storage elements can fail over the useful life of the memory system. Proper management of the failing elements in the memory system is important for longevity and usefulness.